package org.poseidon.report.service;

import java.util.List;
import org.poseidon.report.domain.BuProject;
import org.poseidon.report.domain.vo.BuProjectAddVO;
import org.poseidon.report.domain.vo.BuProjectEditVO;

/**
 * 项目Service接口
 * 
 * @author gfc
 * @date 2022-02-23
 */
public interface IBuProjectService 
{
    /**
     * 查询项目
     * 
     * @param id 项目主键
     * @return 项目
     */
    public BuProject selectBuProjectById(Long id);

    /**
     * 查询项目列表
     * 
     * @param buProject 项目
     * @return 项目集合
     */
    public List<BuProject> selectBuProjectList(BuProject buProject);

    /**
     * 新增项目
     * 
     * @param buProject 项目
     * @return 结果
     */
    public int insertBuProject(BuProject buProject);

    /**
     * 修改项目
     * 
     * @param buProject 项目
     * @return 结果
     */
    public int updateBuProject(BuProject buProject);

    /**
     * 批量删除项目
     * 
     * @param ids 需要删除的项目主键集合
     * @return 结果
     */
    public int deleteBuProjectByIds(List<Long> ids);

    /**
     * 删除项目信息
     * 
     * @param id 项目主键
     * @return 结果
     */
    public int deleteBuProjectById(Long id);

    int countProjectInProductIds(List<Long> ids);

    /**
     * 新增里程碑-获取项目列表
     * @return
     */
    List<BuProject> getProjectList();

    /**
     * 编辑 获取项目详情
     * @param id
     * @return
     */
    BuProjectEditVO selectProjectByPrimary(Long id);

    /**
     * 新增项目
     * @param buProject
     */
    void addProject(BuProjectAddVO buProject);

    /**
     * 修改项目
     * @param editVO
     */
    void updateProject(BuProjectEditVO editVO);
}
